#include<iostream>
using namespace std;

class File
{
private:
    FILE * pf;
public:
    //这个构造函数可以传入文件名和打开文件的方式
    File(const char * pFileName,const char * pMode)
    {
        open(pFileName,pMode);
    }
    //这个构造函数很懒，什么事情也不做
    File()
    {
        pf = NULL;
        cout<<"你选择了一开始不打开文件"<<endl;
    }

    //用来打开一个文件的函数
    bool open(const char * pFileName,const char * pMode)
    {
        pf = fopen(pFileName,pMode);
        if(pf == NULL)
        {
            cout<<"打开文件失败!"<<endl;
        }
    }

    ~File()
    {
        if(pf!=NULL)
        {
            fclose(pf);
        }
        cout<<"析构函数被调用"<<endl;
    }
};

int main()
{
    File f;
    f.open("1.txt","r");

    File *p = new File();
    delete p;
    cout<<"11111111111111111111111"<<endl;
    return 0;
}
